upgrade: Don't segfault if there's no previous deployment
authorColin Walters <walters@verbum.org>
Fri, 20 Sep 2013 13:42:50 +0000 (09:42 -0400)
committerColin Walters <walters@verbum.org>
Fri, 20 Sep 2013 15:21:08 +0000 (11:21 -0400)
Obviously.

src/ostree/ot-admin-builtin-upgrade.c

index 045d13291745b851a7d49d8c26ccd5f331bb0e07..27925c582e82b8c33c31605e4c232e6a0e281e02 100644 (file)
@@ -72,6 +72,12 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
   if (!opt_osname)
     opt_osname = (char*)ostree_deployment_get_osname (ostree_sysroot_get_booted_deployment (sysroot));
   merge_deployment = ostree_sysroot_get_merge_deployment (sysroot, opt_osname); 
+  if (merge_deployment == NULL)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "No previous deployment for OS '%s'", opt_osname);
+      goto out;
+    }
 
   deployment_path = ostree_sysroot_get_deployment_directory (sysroot, merge_deployment);
   deployment_origin_path = ostree_sysroot_get_deployment_origin_path (deployment_path);